package com.hsgene.order.service;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.common.util.result.NullObject;
import com.hsgene.order.domain.v1.GeneticTestingOrder;
import com.hsgene.order.domain.v1.GeneticTestingOrderAddtionA;
import com.hsgene.order.domain.v1.GeneticTestingOrderInterchange;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;

/**
 * 内部API订单Service
 *
 * @author wangbing
 * @version 1.0, 2018/10/9
 */
public interface InternalOrderService {

    /**
     * 根据id获取订单信息
     *
     * @param orderId 订单id
     * @return 订单信息
     */
    ApiResult<GeneticTestingOrder> getTestingOrder(String orderId);

    /**
     * 根据interchangeId获取订单变更信息
     *
     * @param interchangeId 订单变更id
     * @return 订单变更信息
     */
    ApiResult<GeneticTestingOrderInterchange> getTestingOrderInterchange(String interchangeId);

    /**
     * 根据订单id获取订单附加A信息
     *
     * @param orderId 订单id
     * @return 订单附加A信息
     */
    ApiResult<GeneticTestingOrderAddtionA> getTestingOrderAdditionA(String orderId);

    /**
     * 套餐变更支付回调
     *
     * @param interchangeId 变更记录id
     * @param amount        支付金额
     * @return 回调结果
     */
    ApiResult<NullObject> payInterchangeCallBack(String interchangeId, BigDecimal amount);
}
